package cn.iocoder.yudao.module.jky.dal.dataobject.order;

import cn.iocoder.yudao.module.jky.controller.admin.orderdetail.vo.OrderDetailRespVO;
import cn.iocoder.yudao.module.jky.dal.dataobject.orderdetail.OrderDetailDO;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 订单 DO
 *
 * @author 超级管理员
 */
@TableName("dm_order")
@KeySequence("dm_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrderDO {

    /**
     * 主键
     */
    @TableId
    private Integer id;
    /**
     * 用户ID
     */
    private Integer userId;
    /**
     * 订单号
     */
    private String orderNum;
    /**
     * 订单名称
     */
    private String title;
    /**
     * 总价 精确到分
     */
    private Integer allprice;
    /**
     * 赠送积分
     */
    private Integer givePoint;
    /**
     * 分成
     */
    private Double proffer;
    /**
     * 1=未结算2=结算
     */
    private Byte profferStatus;
    /**
     * 抵扣积分
     */
    private Integer deductionPoint;
    /**
     * 省份
     */
    private String province;
    /**
     * 城市
     */
    private String city;
    /**
     * 县/区域
     */
    private String county;
    /**
     * 收货地址
     */
    private String address;
    /**
     * 收件人单位名称
     */
    private String company;
    /**
     * 收件人
     */
    private String consignee;
    /**
     * 联系电话
     */
    private String contactNumber;
    /**
     * 邮政编码
     */
    private String postcode;
    /**
     * 快递公司
     */
    private String logistics;
    /**
     * 快递单号
     */
    private String expressNumber;
    /**
     * 备注
     */
    private String remark;
    /**
     * 订单状态 1未支付 2已支付 3已发货 4已确认收货、未评价 5已确认收货、已评价 6申请退款 7退款成功 8拒绝退款
     */
    private Integer status;
    /**
     * 支付时间
     */
    private LocalDateTime payTime;
    /**
     * 发货时间
     */
    private LocalDateTime deliverTime;
    /**
     * 确认收货时间
     */
    private LocalDateTime finishTime;
    /**
     * 评论时间
     */
    private LocalDateTime commentTime;
    /**
     * 申请退款时间
     */
    private LocalDateTime refundTime;
    /**
     * 退款成功时间
     */
    private LocalDateTime refundSuccessTime;
    /**
     * 拒绝退款时间
     */
    private LocalDateTime refundFailTime;
    /**
     * 支付方式 alipay支付宝 wxpay微信支付 balance余额支付 point积分抵用
     */
    private String payMethod;
    /**
     * 抵用积分数
     */
    private Integer point;
    /**
     * 消费码
     */
    private String consumerCode;
    /**
     * 申请退款理由
     */
    private String drawbackReason;
    /**
     * 申请退款凭证图片
     */
    private String drawbackImg;
    /**
     * 拒绝退款理由
     */
    private String drawbackRefuseReason;
    /**
     * 退款快递单号
     */
    private String refundExpressNumber;
    /**
     * 是否延迟收货 Y是 N否
     */
    private String isDelay;
    /**
     * 取消订单时间
     */
    private LocalDateTime cancelTime;
    /**
     * 类型1自营商城3寄售商城
     */
    private Integer type;
    /**
     * 供应商组ID 0代表无
     */
    private Integer supplierId;

    @TableField(exist = false)
    private String supplierName;

    @TableField(exist = false)
    private List<OrderDetailRespVO> orderDetailDOList;

}
